package com.juejin.www.service;

import com.juejin.www.model.DTO.PageDTO;
import com.juejin.www.model.DTO.UserDTO;
import com.juejin.www.model.VO.UserVO;

/**
 * @author Jacky
 */
public interface UserService {
    /**
     * 用户登录方法
     * @param userDTO 用户对象
     * @return 查找到的用户对象
     */
    UserDTO login(UserDTO userDTO);

    /**
     * 用户注册方法
     * @param userDTO 用户对象
     * @return 是否注册成功
     */
    boolean register(UserDTO userDTO);

    /**
     * 获取用户列表
     * @param currentPage 当前页码
     * @param pageSize 每页展示数目
     * @return 用户列表
     */
    PageDTO<UserVO> getUsers(Integer currentPage, Integer pageSize);

    /**
     * 获取用户信息
     * @param id 用户id
     * @param uid 访问者id
     * @return 用户实体
     */
    UserVO getInfo(Integer id,Integer uid);

    /**
     * 关注用户
     * @param follower 关注者
     * @param beFollowed 被关注者
     */
    void followUser(Integer follower,Integer beFollowed);

    /**
     * 取消关注
     * @param follower 关注者
     * @param beFollowed 被关注者
     */
    void cancelFollow(Integer follower,Integer beFollowed);
}
